from PyQt5.QtWidgets import QMainWindow, QApplication, QVBoxLayout, QPushButton, QWidget, QStatusBar
from PyQt5.QtGui import QIcon
import sys
# 内部引入
from widget_ui.ui_zip_to_webp import Zip_To_Webp_Widget
from widget_ui.ui_single_webp_mergen import Single_Webp_Mergen_Widget
from widget_ui.ui_single_png_mergen_png import Single_Png_Mergen_Png_Widget
from widget_ui.ui_single_png_to_single_webp import Single_Png_To_Single_Webp_Widget
from widget_ui.ui_clear_png import Clear_Png_Widget
from widget_ui.ui_clear_webp import Clear_Webp_Widget

class Main_Window(QMainWindow):
    def __init__(self):
        super(Main_Window,self).__init__()
        self.initUI()
    
    def initUI(self):
        self.resize(500,300)
        self.setWindowTitle("切片后处理工具_@GeoTech")
        self.setWindowIcon(QIcon("./assets/window_icon.png"))
        self.setFixedSize(self.width(), self.height()) # 禁止最大化，固定窗口大小

        vbox = QVBoxLayout()
        # 多个zip转换成单个webp目录
        zip_to_webp = QPushButton("ZIP包转换为webp瓦片")
        zip_to_webp.clicked.connect(self.open_zip_to_webp)
        self.zip_to_webp_widget = Zip_To_Webp_Widget()
        zip_to_webp.setToolTip("输入待处理的zip存放目录,转换并整合到webp切片目录")
        # 区域webp目录写入总webp目录
        single_webp_mergen = QPushButton("WEBP汇总")
        single_webp_mergen.clicked.connect(self.open_single_webp_mergen)
        self.single_webp_mergen_widget = Single_Webp_Mergen_Widget()
        single_webp_mergen.setToolTip("多个webp切片目录合并到另一个webp切片目录")
        # 多个png目录合并为单个png目录
        single_png_mergen_png = QPushButton("PNG汇总")
        single_png_mergen_png.clicked.connect(self.open_single_png_mergen_png)
        self.single_png_mergen_png_widget = Single_Png_Mergen_Png_Widget()

        # 单个png目录转换为单个webp目录
        single_png_to_single_webp = QPushButton("PNG转换为WEBP")
        single_png_to_single_webp.clicked.connect(self.open_single_png_to_single_webp)
        self.single_png_to_single_webp_widget = Single_Png_To_Single_Webp_Widget()
        single_png_to_single_webp.setToolTip("多个png切片目录合并到另一个png切片目录")
        # 单个png目录清洗无数据瓦片
        clear_png = QPushButton("清洗PNG无数据瓦片")
        clear_png.clicked.connect(self.open_clear_png)
        self.clear_png_widget = Clear_Png_Widget()

        # 单个webp目录清洗无数据瓦片
        clear_webp = QPushButton("清洗WEBP无数据瓦片")
        clear_webp.clicked.connect(self.open_clear_webp)
        self.clear_webp_widget = Clear_Webp_Widget()



        # 按钮加入布局
        vbox.addWidget(zip_to_webp)
        vbox.addWidget(single_webp_mergen)
        vbox.addWidget( single_png_mergen_png)
        vbox.addWidget(single_png_to_single_webp)
        vbox.addWidget(clear_png)
        vbox.addWidget(clear_webp)

        # 布局加入weiget
        centerWidget = QWidget()
        centerWidget.setLayout(vbox)        # 窗口中心控件添加布局
        self.setCentralWidget(centerWidget) # 设置窗口中心的控件

    def open_zip_to_webp(self):
        self.zip_to_webp_widget.show()
    
    def open_single_webp_mergen(self):
        self.single_webp_mergen_widget.show()

    def open_single_png_mergen_png(self):
        self.single_png_mergen_png_widget.show()
    
    def open_single_png_to_single_webp(self):
        self.single_png_to_single_webp_widget.show()

    def open_clear_png(self):
        self.clear_png_widget.show()

    def open_clear_webp(self):
        self.clear_webp_widget.show()
    


def main():
    app = QApplication(sys.argv)
    main_window_ui = Main_Window()
    main_window_ui.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()